var buthis = [];
var valuehis = [];
function computingFormula() {
	var store = new Ext.data.Store({
				url : 'payClazzItemAction!queryClassitemForFormula.action',
				reader : new Ext.data.JsonReader({
							root : 'list',
							id : 'pay_classitem_id'
						}, [{
									name : 'pay_classitem_id',
									mapping : 'pay_classitem_id'
								}, {
									name : 'name',
									mapping : 'name'
								}, {
									name : 'display_order',
									mapping : 'display_order',
									type : 'int'
								}])
			});

	var cm = new Ext.grid.ColumnModel([{
				header : "薪资项目标识",
				width : 100,
				sortable : true,
				dataIndex : 'pay_classitem_id',
				hidden : true
			}, {
				header : "薪资项目名称",
				width : 100,
				sortable : true,
				dataIndex : 'name'
			}, {
				header : "显示顺序",
				width : 60,
				autoScroll : true,
				autoWidth : true,
				sortable : true,
				dataIndex : 'display_order',
				editor : new Ext.form.TextField({
							allowBlank : false
						})
			}]);

	var eorderGrid = new Ext.grid.GridPanel({
				height : 390,
				width : 170,
				autoScroll : true,
				clicksToEdit : 1,
				id : 'eorderGrid',
				cm : cm,
				store : store
			});
	eorderGrid.addListener('rowdblclick', rowdblclickFn);
	function rowdblclickFn(grid, rowIndex, e) {
		buthis.push(grid.getStore().getAt(rowIndex).get('name'));
		valuehis.push(grid.getStore().getAt(rowIndex).get('name'));
		Ext.getCmp('_formula').setValue(buthis.join(' '));
	}

	var aaPanel = new Ext.form.FormPanel({
				anchor : '100%',
				height : 400,
				frame : true,
				hideLables : false,
				id : 'eorderPanelForm',
				buttonAlign : 'right',
				bodyStyle : 'padding:5px 5px 0',
				items : [eorderGrid]
			});

	var bbPanel = new Ext.form.FormPanel({
		// width : 500,
		anchor : '100%',
		frame : true,
		hideLables : false,
		height : 400,
		id : 'addPanelForm',
		buttonAlign : 'right',
		bodyStyle : 'padding:5px 5px 0',
		layout : 'form',
		items : [{
					xtype : 'fieldset',
					title : '公式',
					anchor : '100%',
					collapseFirst : false,
					collapsible : true,
					autoHeight : true,
					width : 400,
					items : [{
								xtype : "textarea",
								// fieldLabel : "显示公式",
								hideLabel : true,
								height : 100,
								width : 350,
								id : '_formula'
							}]
				}, {
					xtype : 'fieldset',
					title : '设定',
					anchor : '100%',
					collapsible : true,
					autoHeight : true,
					autoWidth : true,
					buttonAlign : 'center',
					items : [{
						layout : "table",
						layoutConfig : {
							columns : 27
						},
						defaults : {
							bodyStyle : "padding:1px;",
							style : "margin:1px;button-align:right; float: right;"
						},
						items : [{
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								}, {
									items : [{
												xtype : "button",
												minWidth : 85,
												hidden : true,
												text : ''
											}]
								},{

									items : [{
										xtype : "button",
										text : '并',
										id : 'and',
										minWidth : 40,
										handler : function(b, e) {
											buthis.push(Ext.getCmp('and')
													.getText());
											valuehis.push('&&');
											Ext.getCmp('_formula')
													.setValue(buthis.join(' '));
										}
									}]
								}, {
									items : [{
										xtype : "button",
										text : '或',
										minWidth : 40,
										id : 'or',
										handler : function(b, e) {
											buthis.push(Ext.getCmp('or')
													.getText());
											valuehis.push('||');
											Ext.getCmp('_formula')
													.setValue(buthis.join(' '));
										}
									}]
								}, {
									items : [{
										xtype : "button",
										text : '回退',
										minWidth : 80,
										id : '_btnSearch',
										handler : function(b, e) {
											buthis.pop();
											valuehis.pop();
											Ext.getCmp('_formula').setValue(buthis.join(' '));
										}
									}]
								}, {
									items : [{
												xtype : "button",
												text : '清空',
												minWidth : 80,
												id : '_btnSearch',
												handler : function(b, e) {
													buthis = [];
													valuehis = [];
													Ext.getCmp('_formula').setValue('');
												}
											}]
								}]
					}, {
						layout : "table",
						layoutConfig : {
							columns : 7
						},
						defaults : {
							bodyStyle : "padding:1px;",
							style : "margin:1px;"
						},
						items : [{
							items : [{
								xtype : "button",
								text : '7',
								minWidth : 40,
								id : 'seven',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('seven').getText());
									valuehis.push('7');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '8',
								minWidth : 40,
								id : 'eight',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('eight').getText());
									valuehis.push('8');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '9',
								minWidth : 40,
								id : 'nine',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('nine').getText());
									valuehis.push('9');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '+',
								minWidth : 40,
								id : 'plus',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('plus').getText());
									valuehis.push('+');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '>',
								minWidth : 40,
								id : 'more',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('more').getText());
									valuehis.push('>');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '(',
								minWidth : 40,
								id : 'leftparenthese',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('leftparenthese')
											.getText());
									valuehis.push('(');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {

							items : [{
								xtype : "button",
								id : 'ifopen',
								text : '如果开始',
								minWidth : 80,
								handler : function(b, e) {
									buthis.push(Ext.getCmp('ifopen').getText());
									valuehis.push('(');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '4',
								minWidth : 40,
								id : 'four',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('four').getText());
									valuehis.push('4');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '5',
								minWidth : 40,
								id : 'five',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('five').getText());
									valuehis.push('5');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '6',
								minWidth : 40,
								id : 'six',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('six').getText());
									valuehis.push('6');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '-',
								minWidth : 40,
								id : 'minus',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('minus').getText());
									valuehis.push('-');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '<',
								minWidth : 40,
								id : 'less',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('less').getText());
									valuehis.push('<');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : ')',
								minWidth : 40,
								id : 'rightparenthese',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('rightparenthese')
											.getText());
									valuehis.push(')');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {

							items : [{
								xtype : "button",
								text : '如果结束',
								minWidth : 80,
								id : 'ifend',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('ifend').getText());
									valuehis.push(')');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '1',
								minWidth : 40,
								id : 'one',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('one').getText());
									valuehis.push('1');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '2',
								minWidth : 40,
								id : 'two',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('two').getText());
									valuehis.push('2');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '3',
								minWidth : 40,
								id : 'three',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('three').getText());
									valuehis.push('3');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '*',
								minWidth : 40,
								id : 'multip',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('multip').getText());
									valuehis.push('*');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '>=',
								minWidth : 40,
								id : 'unless',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('unless').getText());
									valuehis.push('>=');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '!=',
								minWidth : 40,
								id : 'unequal',
								handler : function(b, e) {
									buthis
											.push(Ext.getCmp('unequal')
													.getText());
									valuehis.push('!=');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '如果则',
								minWidth : 80,
								id : 'then',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('then').getText());
									valuehis.push(')?(');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '0',
								minWidth : 40,
								id : 'zero',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('zero').getText());
									valuehis.push('0');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '00',
								minWidth : 40,
								id : 'doublezero',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('doublezero')
											.getText());
									valuehis.push('00');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '.',
								minWidth : 40,
								id : 'point',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('point').getText());
									valuehis.push('.');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '/',
								minWidth : 40,
								id : 'division',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('division')
											.getText());
									valuehis.push('/');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '<=',
								minWidth : 40,
								id : 'unmore',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('unmore').getText());
									valuehis.push('<=');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '=',
								minWidth : 40,
								id : 'equal',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('equal').getText());
									valuehis.push('=');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}, {
							items : [{
								xtype : "button",
								text : '如果否则',
								minWidth : 80,
								id : 'else',
								handler : function(b, e) {
									buthis.push(Ext.getCmp('else').getText());
									valuehis.push('):(');
									Ext.getCmp('_formula').setValue(buthis
											.join(' '));
								}
							}]
						}]
					}]
				}],
		buttons : [{
			text : '确定',
			id : '_btnSearch',
			handler : function() {
				if(Ext.getCmp('segment1').getValue()==''){
					Ext.Msg.alert('错误', '请输入表达式！');
					return;
				}
				Ext.getCmp('formula_tmp1').setValue(buthis.join(''));
				Ext.getCmp('segment1').setValue(valuehis.join(''));

				// 检查公式的合法性
				var v = Ext.getCmp('segment1').getValue();
				// alert(v);
				var stack = [];
				for (var i = 0; i < v.length; i++) {
					// alert(stack.toString() + '判断' + v.charAt(i))
					if (v.charAt(i) == '(' || v.charAt(i) == '?') {
						stack.push(v.charAt(i));
						continue;
					}
					if (v.charAt(i) == ')') {
						if (stack.length == 0 || stack[stack.length - 1] == '?') {
							// ')'不应该碰到空或者'?'
							Ext.Msg.alert('错误', '输入的表达式不合法,请检查！');
							return;
						} else {
							if (stack[stack.length - 1] == '(') {
								stack.pop();
								continue;
							}
						}
					}
					if (v.charAt(i) == ':') {
						if (stack.length == 0 || stack[stack.length - 1] != '?') {
							Ext.Msg.alert('错误', '输入的表达式不合法，请检查！');
							return;
						} else {
							stack.pop();
							continue;
						}
					}
				}
				if (stack.length != 0) {
					Ext.Msg.alert('错误', '输入的表达式括号不匹配，请检查！');
					return;
				}
				win.hide();
			}
		}, {
			text : '关闭',
			id : '_btnSearch',
			handler : function() {
				win.hide();
			}
		}]
	});

	var win = new Ext.Window({
				closable : true,
				draggable : true,
				region : 'center',
				title : '薪资项编辑',
				id : 'formulaWin',
				width : 700,
				height : 440,
				anchor : '100%',
				plain : true,
				layout : 'column',
				items : [{
							columnWidth : .3,
							items : [aaPanel]
						}, {
							columnWidth : .7,
							layout : 'form',
							items : [bbPanel]
						}],
				listeners : {
					"beforedestroy" : function(obj) {
						return false;
					},
					"beforeshow" : function(obj) {
						return true;
					}
				}
			});

	return win;

};